package com.project.mapper;

import com.project.Bean.Student;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 学生管理持久层接口
 */
public interface IStudentMapper {
    /**
     * 按房间的id查询学生集合，同时包含学生所在班级名称
     * @param roomId 房间编号
     * @return 学生集合
     */
    public  List<Student> findByRoom(int roomId);
    /**
     * 按房间编号统计该房间学生数量
     * @param roomId  房间编号
     * @return 该房间所住学生人数
     */
    public int countByRoom(int roomId);

    /***
     * 按班级的编号统计改班级的学生人数
     * @param classId  班级编号
     * @return  该班级学生人数
     */
    public  int countByClass(int classId);

    /**
     * 动态查询学生信息
     * 同时查询班级名称和房间地址
     * @param name 学生姓名
     * @param classRoom  学生班级
     * @param room  学生房间
     * @return 学生对象集合
     */
    public List<Student> findAll(@Param("name") String name,@Param("classRoom") String classRoom,@Param("room") String room);
    /**
     * 学生入住
     * @param s 学生对象
     */
    public void addStudent(Student s);

    /**
     * 学生退房
     * @param id 要退房学生的编号
     */
    public void delStudent(int id);
    /***
     * 学生换房
     * @param id  要换房学生的id
     * @param roomId 新房子对象编号
     */
    public void  changeRoom(@Param("id") int id ,@Param("roomId") int roomId);
    /***
     * 按编号查询学生详细信息,同时查询班级名称和房间地址
     * @param id 查询学生编号
     * @return  学生对象
     */
    public Student findById(int id);
}
